$AutoMode=false
$CloudCRV=false

$address_nfs="nfs"
$address_ldap="ldap"
$address_condorhead="condorhead"
$address_proxy="proxy"

#$address_int1='int1'
#$address_worker1='worker1'

$mydomainname="mytier3.com"

$NFSServerSharePath="/export/share"
$NFSClientAddr=["192.168.192.0/255.255.240.0"]
$NFSServerAddr="$address_nfs:$NFSServerSharePath"
$NFSServerClientMountPath=$NFSServerSharePath
$NFSServerClientMount=$NFSServerClientMountPath

$ldaprootpw="{SSHA}Rq03UQ2HtDnqozwigoXEESAaqMaXq5cr"
$ldapsuffix="dc=mytier3,dc=com"
$ldapuri="ldap://$address_ldap/"

$squidproxy="http://$address_proxy:3128"

$filesystemdomain="atlastier3"
$condorheadaddr="$address_condorhead"
$CondorPassword="abcdefg"
$condor_allow_negotiator_extra="192.168.192.1"

$dnsmasqinterfaces=["eth0","eth1","privatebr"]

$ntpserver="192.168.192.1"
$ntpserver_ntpserver="0.rhel.pool.ntp.org 1.rhel.pool.ntp.org 2.rhel.pool.ntp.org time.apple.com clock.redhat.com"
$ntpserver_subnetaddr="192.168.192.1"
$ntpserver_subnetmask="255.255.240.0"

class cls_ntpserver {
  at3_ntpserver {at3_ntpserver:  
    require => Class["cls_security"]
  }
}

class cls_dnsmasq {
  at3_dnsmasq  { at3_dnsmasq:
  }
}

class cls_security {
  at3_security { at3_security:
    extrarules => "-p ntp:udp"
  }
}

class cls_ntpclient {
  at3_ntpclient {at3_ntpclient: }
}

class cls_nfssrv {  
  at3_nfssrv { at3_nfssrv:
    require => Class["cls_ntpclient"]
  }
}

class cls_ldapserver {  
  at3_ldapserver { at3_ldapserver:
    require => Class["cls_ntpclient"]
  }
}

class cls_proxy {
  at3_proxy { at3_proxy:
    require => Class["cls_ntpclient"]
  }
}

class cls_nfsclient {
  at3_nfsclient {at3_nfsclient:
    require => Class["cls_ntpclient"]
  }
}

class cls_head {
  at3_head {at3_head:
    require => Class["cls_nfsclient"]
  }
}

class cls_ldapclient {
  at3_ldapclient {at3_ldapclient:
    require => Class["cls_ntpclient"]
  }
}

class cls_cvmfs {
  at3_cvmfs {at3_cvmfs:
    require => Class["cls_ntpclient"]
  }
}

class cls_interactive {
  at3_interactive {at3_interactive:
    require => Class["cls_ntpclient", "cls_nfsclient", "cls_ldapclient"]
  }
}
class cls_worker {
  at3_worker {at3_worker:
    require => Class["cls_ntpclient", "cls_nfsclient", "cls_ldapclient"]
  }
}

node 'headnode' {
  
  $ethgreen="privatebr"
  $ethred="eth0"
  $domasq=true

  include cls_ntpserver
  include cls_dnsmasq 
  include cls_security
}

node 'nfs' {
  include cls_ntpclient
  include cls_nfssrv
}

node 'ldap' {
  include cls_ntpclient
  include cls_ldapserver 
}

node 'proxy' {
  include cls_ntpclient
  include cls_proxy
}
  
node 'condorhead' {
  include cls_ntpclient
  include cls_nfsclient
  include cls_head
}


node 'int00' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_interactive
}

node 'int01' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_interactive
}

node 'int02' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_interactive
}

node 'int03' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_interactive
}

node 'worker000' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_worker
}

node 'worker001' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_worker
}

node 'worker002' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_worker
}

node 'worker003' {
  include cls_ntpclient 
  include cls_nfsclient
  include cls_ldapclient
  include cls_cvmfs 
  include cls_worker
}

